home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / pibt3sp1.arc / GETAREAC.PAS < prev    next >
Pascal/Delphi Source File  |  1985-09-03  |  18KB  |  364 lines

  1. OVERLAY PROCEDURE GetAreaCode;
  2.  
  3. (*--------------------------------------------------------------------------*)
  4. (*                                                                          *)
  5. (*     Procedure:  GetAreaCode                                              *)
  6. (*                                                                          *)
  7. (*     Purpose:    Searches area code directory                             *)
  8. (*                                                                          *)
  9. (*     Calling sequence:                                                    *)
  10. (*                                                                          *)
  11. (*        GetAreaCode;                                                      *)
  12. (*                                                                          *)
  13. (*     Calls:                                                               *)
  14. (*                                                                          *)
  15. (*        UpperCase                                                         *)
  16. (*        Save_Screen                                                       *)
  17. (*        Draw_Menu_Frame                                                   *)
  18. (*        Restore_Screen                                                    *)
  19. (*        Reset_Global_Colors                                               *)
  20. (*                                                                          *)
  21. (*     Called by:  Execute_Command                                          *)
  22. (*                                                                          *)
  23. (*     Credit:  This area code search is based upon one by Tom Hanlin III   *)
  24. (*              in his ETERM and PASCTERM programs, and one by Martin Smith *)
  25. (*              in his AREA2.EXE program.                                   *)
  26. (*                                                                          *)
  27. (*--------------------------------------------------------------------------*)
  28.  
  29. CONST
  30.    MaxAreaCodes = 251;
  31.  
  32. CONST
  33.    AreaCode:   ARRAY[0..MaxAreaCodes] OF STRING[60] =
  34.                ( '201NJNew Jersey (Newark, Hackensack, New Brunswick)',
  35.                  '201NJNew Jersey (Patterson)',
  36.                  '202DCWashington DC',
  37.                  '203CTConnecticut',
  38.                  '204CNCanada (Manitoba)',
  39.                  '205ALAlabama',
  40.                  '206WAWashington (Seattle, Olympia, Vancouver)',
  41.                  '207MEMaine',
  42.                  '208IDIdaho',
  43.                  '209CACalifornia (Fresno)',
  44.                  '212NYNew York (New York City)',
  45.                  '213CACalifornia (Los Angeles)',
  46.                  '214TXTexas (Dallas, Ennis, Greenville, Jefferson)',
  47.                  '214TXTexas (Longview, Sherman, Tyler)',
  48.                  '215PAPennsylvania (Philadelphia, Allentown)',
  49.                  '216OHOhio (Akron, Cleveland, Youngstown)',
  50.                  '217ILIllinois (Springfield)',
  51.                  '218MNMinnesota (Duluth)',
  52.                  '219INIndiana (Gary, South Bend, Warsaw)',
  53.                  '301MDMaryland',
  54.                  '302DEDelaware',
  55.                  '303COColorado',
  56.                  '304WVWest Virginia',
  57.                  '305FLFlorida (Miami, Key West, Ft. Lauderdale)',
  58.                  '306CNCanada (Saskatchewan)',
  59.                  '307WYWyoming',
  60.                  '308NENebraska (North Platte)',
  61.                  '309ILIllinois (Peoria)',
  62.                  '312ILIllinois (Chicago, Aurora, Waukegan)',
  63.                  '313MIMichigan (Detroit, Ann Arbor, Flint)',
  64.                  '314MOMissouri (St. Louis, Cape Girardeau, Columbia)',
  65.                  '314MOMissouri (Fulton, Hannibal, Jefferson City)',
  66.                  '314MOMissouri (Mexico, Poplar Bluff, Rolla)',
  67.                  '315NYNew York (Syracuse)',
  68.                  '316KSKansas (Wichita, Dodge City)',
  69.                  '317INIndiana (Indianapolis, Kokomo)',
  70.                  '318LALouisiana (Lake Charles)',
  71.                  '319IAIowa (Dubuque)',
  72.                  '401RIRhode Island',
  73.                  '402NENebraska (Omaha, Lincoln)',
  74.                  '403CNCanada (Alberta -- Calgary, Edmonton)',
  75.                  '404GAGeorgia (Atlanta, Rome)',
  76.                  '405OKOklahoma (Oklahoma City, Enid, Norman)',
  77.                  '405OKOklahoma (Ponca City, Stillwater)',
  78.                  '406MTMontana',
  79.                  '408CACalifornia (San Jose)',
  80.                  '409TXTexas (Bay City, Beaumont, Bryan)',
  81.                  '409TXTexas (College Station, Galveston, Huntsville)',
  82.                  '412PAPennsylvania (Pittsburgh)',
  83.                  '413MAMassachusetts (Springfield)',
  84.                  '414WIWisconsin (Milwaukee, Green Bay, Racine)',
  85.                  '415CACalifornia (San Francisco)',
  86.                  '416CNCanada (Ontario -- Toronto, Mississauga)',
  87.                  '417MOMissouri (Joplin, Springfield)',
  88.                  '418CNCanada (Quebec)',
  89.                  '419OHOhio (Toledo)',
  90.                  '501ARArkansas',
  91.                  '502KYKentucky (Louisville, Frankfort)',
  92.                  '502KYKentucky (Paducah, Shelbyville)',
  93.                  '503OROregon',
  94.                  '504LALouisiana (Baton Rouge, New Orleans)',
  95.                  '505NMNew Mexico',
  96.                  '506CNCanada (New Brunswick -- Costa Rica)',
  97.                  '507MNMinnesota (Rochester)',
  98.                  '509WAWashington (Walla Walla)',
  99.                  '512TXTexas (Austin, Brownsville, Corpus Christi, Del Rio)',
  100.                  '512TXTexas (Eagle Pass, Laredo, McAllen, San Antonio)',
  101.                  '512TXTexas (Victoria)',
  102.                  '513OHOhio (Cincinnati, Dayton)',
  103.                  '514CNCanada (Quebec -- Montreal)',
  104.                  '515IAIowa (Des Moines)',
  105.                  '516NYNew York',
  106.                  '517MIMichigan (Lansing)',
  107.                  '518NYNew York (Albany, Schenectady)',
  108.                  '519CNCanada (Ontario -- London)',
  109.                  '601MSMississippi',
  110.                  '602AZArizona',
  111.                  '603NHNew Hampshire',
  112.                  '604CNCanada (British Columbia -- Vancouver)',
  113.                  '605SDSouth Dakota',
  114.                  '606KYKentucky (Winchester)',
  115.                  '607NYNew York (Binghamton)',
  116.                  '608WIWisconsin (Madison)',
  117.                  '609NJNew Jersey (Atlantic City, Camden, Trenton)',
  118.                  '612MNMinnesota (Minneapolis, St. Paul)',
  119.                  '613CNCanada (Ontario -- Ottawa)',
  120.                  '614OHOhio (Columbus)',
  121.                  '615TNTennessee (Nashville, Chattanooga)',
  122.                  '616MIMichigan (Battle Creek, Grand Rapids, Kalamazoo)',
  123.                  '617MAMassachusetts (Boston, New Bedford, Plymouth)',
  124.                  '617MAMassachusetts (Worchester)',
  125.                  '618ILIllinois (Alton, Mt. Vernon)',
  126.                  '619CACalifornia (San Diego)',
  127.                  '701NDNorth Dakota',
  128.                  '702NVNevada',
  129.                  '703VAVirginia (Roanoke, Winchester)',
  130.                  '704NCNorth Carolina (Charlotte, Salisbury)',
  131.                  '705CNCanada (West Ontario)',
  132.                  '706MXMexico (NW Mexico)',
  133.                  '707CACalifornia (Santa Rosa)',
  134.                  '709CNCanada (Newfoundland)',
  135.                  '712IAIowa (Council Bluffs)',
  136.                  '713TXTexas (Houston, Baytown, Pasadena)',
  137.                  '714CACalifornia (Orange)',
  138.                  '715WIWisconsin (Wausau)',
  139.                  '716NYNew York (Buffalo, Niagara Falls, Rochester)',
  140.                  '717PAPennsylvania (Harrisburg, Scranton)',
  141.                  '718NYNew York (New York City)',
  142.                  '800  Wide Area Telephone Service (WATS)',
  143.                  '801UTUtah',
  144.                  '802VTVermont',
  145.                  '803SCSouth Carolina',
  146.                  '804VAVirginia (Charlottesville, Newport News)',
  147.                  '804VAVirginia (Norfolk, Richmond)',
  148.                  '805CACalifornia (Bakersfield)',
  149.                  '806TXTexas (Amarillo, Dalhart, Lubbock)',
  150.                  '807CNCanada (East Ontario)',
  151.                  '808HIHawaii',
  152.                  '809PRPuerto Rico (Anguilla, Antigua, Bahamas, Barbados)',
  153.                  '809PRPuerto Rico (Bermuda, Cayman Islands)',
  154.                  '809PRPuerto Rico (Dominican Republic, Jamaica)',
  155.                  '809PRPuerto Rico (St. Lucia, Trinidad)',
  156.                  '812INIndiana (Evansville)',
  157.                  '813FLFlorida (Ft. Myers, Winter Haven)',
  158.                  '814PAPennsylvania (Erie)',
  159.                  '815ILIllinois (Rockford)',
  160.                  '816MOMissouri (Belton, Independence, Kansas City)',
  161.                  '816MOMissouri (Marshall, St. Joseph, Sedalia)',
  162.                  '817TXTexas (Fort Worth, Denton, Temple)',
  163.                  '817TXTexas (Waco, Wichita Falls)',
  164.                  '819CNCanada (NW Quebec)',
  165.                  '901TNTennessee (Memphis)',
  166.                  '902CNCanada (Nova Scotia & Prince Edward Island)',
  167.                  '904FLFlorida (Jacksonville)',
  168.                  '905MXMexico (Mexico City)',
  169.                  '906MIMichigan (906 Escanaba)',
  170.                  '907AKAlaska',
  171.                  '912GAGeorgia (Waycross)',
  172.                  '913KSKansas (Topeka, Lawrence, Manhattan, Salina)',
  173.                  '914NYNew York (White Plains)',
  174.                  '915TXTexas (Abilene, Alpine, Big Spring, El Paso)',
  175.                  '915TXTexas (Midland, Odessa)',
  176.                  '916CACalifornia (Sacramento)',
  177.                  '918OKOklahoma (Tulsa, Bartlesville, McAlester, Muskogee)',
  178.                  '919NCNorth Carolina (Greenville, Raleigh, Winston-Salem)',
  179.                  '     Algeria               213',
  180.                  '     Argentina             54',
  181.                  '     Australia             61  Adelaide, Melbourne',
  182.                  '     Australia             61  Newcastle',
  183.                  '     Australia             61  South Perth, Spring Hill',
  184.                  '     Australia             61  Sydney',
  185.                  '     Austria               43  Vienna',
  186.                  '     Barbados              809',
  187.                  '     Belgium               32  Brussels',
  188.                  '     Bolivia               591',
  189.                  '     Braddon               616',
  190.                  '     Brazil                55l',
  191.                  '     Cameroons             237',
  192.                  '     Chile                 056',
  193.                  '     Columbia              287 Bogota',
  194.                  '     Costa Rica            506',
  195.                  '     Cyprus                357',
  196.                  '     Denmark               45  Copenhagen',
  197.                  '     Dutch Antilles        599',
  198.                  '     Egypt                 20',
  199.                  '     El Salvador           503',
  200.                  '     Ecuador               593',
  201.                  '     England               --- see United Kingdom',
  202.                  '     Ethiopia              251',
  203.                  '     Finland               358 Helsinki',
  204.                  '     France                33',
  205.                  '     French Antilles       596',
  206.                  '     French Polyesia       589',
  207.                  '     Fiji                  679',
  208.                  '     Gabon                 241',
  209.                  '     Germany (East)        37',
  210.                  '     Germany (West)        49  Duesseldorf, Frankfurt',
  211.                  '     Germany (West)        49  Hamburg, Hannover',
  212.                  '     Germany (West)        49  Muenchen, Stuttgart',
  213.                  '     Greece                030',
  214.                  '     Guam                  671',
  215.                  '     Guantanamo            53',
  216.                  '     Guatemala             502',
  217.                  '     Guyana                592',
  218.                  '     Haiti                 509',
  219.                  '     Honduras              504',
  220.                  '     Hong Kong             852',
  221.                  '     Iceland               354',
  222.                  '     India                 242',
  223.                  '     Indonesia             062',
  224.                  '     Iran                  98',
  225.                  '     Iraq                  964',
  226.                  '     Ireland               353 Dublin',
  227.                  '     Israel                972',
  228.                  '     Italy                 39  Bologna, Firenze, Milan',
  229.                  '     Italy                 39  Padua, Rome, Turin',
  230.                  '     Ivory Coast           225',
  231.                  '     Japan                 81  Gyoda, Nagoya, Osaka, Tokyo',
  232.                  '     Jordan                431',
  233.                  '     Kenya                 254',
  234.                  '     Korea                 82',
  235.                  '     Kuwait                965',
  236.                  '     Lebanon               961',
  237.                  '     Liberia               231',
  238.                  '     Libya                 218',
  239.                  '     Lichtenstein          41',
  240.                  '     Luxembourg            352',
  241.                  '     Malawi                265',
  242.                  '     Malaysia              60',
  243.                  '     Mexico                052',
  244.                  '     Monaco                33  (shared with France)',
  245.                  '     Morocco               212',
  246.                  '     Netherlands           31  Amsterdam, Badhoevedorp',
  247.                  '     Netherlands           31  Rijswijk, Zwolle',
  248.                  '     New Caledonia         687',
  249.                  '     New Zealand           64  Auckland, Wellington',
  250.                  '     Nicaragua             505',
  251.                  '     Nigeria               234',
  252.                  '     Norway                47  Oslo',
  253.                  '     Oman                  968',
  254.                  '     Pakistan              92',
  255.                  '     Panama                507',
  256.                  '     Paraguay              595',
  257.                  '     Peru                  51',
  258.                  '     Philippines           63',
  259.                  '     Portugal              351',
  260.                  '     Qatar                 974',
  261.                  '     Romania               40',
  262.                  '     Saudi Arabia          966',
  263.                  '     Senegal               221',
  264.                  '     Singapore             65',
  265.                  '     South Africa          27  Johannesburg',
  266.                  '     Spain                 34  Barcelona, Madrid',
  267.                  '     Sri Lanka             94',
  268.                  '     St. Denis             331',
  269.                  '     Surinam               597',
  270.                  '     Sweden                46  Gothenborg, Malmoe',
  271.                  '     Sweden                46  Stockholm',
  272.                  '     Switzerland               Bern, Lausanne, Zurich',
  273.                  '     Taiwan                886',
  274.                  '     Thailand              66',
  275.                  '     Tunisia               216',
  276.                  '     Turkey                90',
  277.                  '     United Arab Emirates  971 Arabia',
  278.                  '     United Kingdom        44  Birmingham, Bristol',
  279.                  '     United Kingdom        44  Hounslow, Leeds, London',
  280.                  '     United Kingdom        44  Manchester, Middlesex',
  281.                  '     United Kingdom        44  Paisley',
  282.                  '     Uruguay               598',
  283.                  '     Vatican City          39  (Shared with Italy)',
  284.                  '     Venezuela             58  Codata',
  285.                  '     Yugoslavia            38'
  286.                );
  287.  
  288. VAR
  289.    LF:         BYTE;
  290.    RT:         BYTE;
  291.    Ptr:        BYTE;
  292.    I:          BYTE;
  293.    Code:       STRING[20];
  294.    Any_Ch:     CHAR;
  295.  
  296. BEGIN (* GetAreaCode *)
  297.                                    (* Save current screen *)
  298.     Save_Screen( Saved_Screen );
  299.                                    (* Display area code prompt box *)
  300.  
  301.     Draw_Menu_Frame( 5, 4, 75, 23, Menu_Frame_Color,
  302.                      Menu_Text_Color, 'Area code search' );
  303.  
  304.                                    (* Prompt for and read area code req. *)
  305.  
  306.     WRITE('Enter area code, state/country, or state initials: ');
  307.     READLN( Code );
  308.  
  309.     RT := LENGTH( Code );
  310.                                    (* Convert to upper case *)
  311.     Code := UpperCase( Code );
  312.  
  313.                                    (* Determine type of request *)
  314.     IF ( RT = 2 ) AND
  315.        ( Code[1] IN ['A'..'Z']) AND ( Code[2] IN ['A'..'Z'] ) THEN
  316.           LF := 4
  317.     ELSE IF ( RT = 3 ) AND
  318.        ( Code[1] IN ['0'..'9'] ) AND
  319.        ( Code[2] IN ['0'..'9'] ) AND
  320.        ( Code[3] IN ['0'..'9'] ) THEN
  321.           LF := 1
  322.     ELSE IF RT <> 0 THEN
  323.           LF := 6;
  324.                                    (* Display search message *)
  325.  
  326.     Draw_Menu_Frame( 5, 4, 75, 23, Menu_Frame_Color,
  327.                      Menu_Text_Color, 'Searching for: ' + Code );
  328.  
  329.                                    (* Perform search *)
  330.     View_Count := 0;
  331.     View_Done  := FALSE;
  332.  
  333.     FOR I := 0 TO MaxAreaCodes DO
  334.        IF ( NOT View_Done ) THEN
  335.           IF UpperCase( Copy( AreaCode[I], LF, RT ) ) = Code THEN
  336.              BEGIN
  337.  
  338.                 WRITE  ( '     ' );
  339.                 WRITE  ( Copy( AreaCode[I], 1, 3 ), '   ' );
  340.                 WRITE  ( Copy( AreaCode[I], 4, 2 ) ,'   ' );
  341.                 WRITELN( Copy( AreaCode[I], 6, LENGTH( AreaCode[I] ) - 5 ) );
  342.  
  343.                 View_Count := View_Count + 1;
  344.  
  345.                 IF View_Count > 16 THEN
  346.                    View_Prompt( View_Done, View_Count );
  347.  
  348.              END;
  349.  
  350.     RvsVideoOn ( Menu_Text_Color , BackGround_Color );
  351.     WRITE('Search complete. Hit any key to continue.');
  352.     RvsVideoOff( Menu_Text_Color , BackGround_Color );
  353.  
  354.     READ( Kbd, Any_Ch );
  355.     IF ( Any_Ch = CHR( ESC ) ) AND KeyPressed THEN
  356.        READ( Kbd, Any_Ch );
  357.  
  358.                                    (* Restore previous screen *)
  359.    Restore_Screen( Saved_Screen );
  360.  
  361.    Reset_Global_Colors;
  362.  
  363. END   (* GetAreaCode *);
  364.